package com.zmn.oms.dubbo.interfaces.zmn.normal.work.master;

import com.zmn.common.dto.ResponseDTO;
import com.zmn.oms.dubbo.dto.common.express.ExpressCompanyDRO;
import com.zmn.oms.dubbo.dto.common.part.ApplyFactoryPartCheckDRO;
import com.zmn.oms.dubbo.dto.common.part.FactoryPartDRO;
import com.zmn.oms.dubbo.dto.common.part.FactoryPartPostCheckDRO;
import com.zmn.oms.dubbo.dto.common.part.FactoryPartPostDIO;
import com.zmn.oms.dubbo.dto.common.work.*;
import com.zmn.oms.dubbo.dto.zmn.part.fcpart.FcOrderPartRespDRO;
import com.zmn.oms.dubbo.interfaces.zmn.master.member.MasterMemberWorkRemoteService;
import com.zmn.oms.dubbo.interfaces.zmn.master.order.MasterWorkListRemoteService;
import com.zmn.oms.dubbo.interfaces.zmn.master.order.MasterWorkRemoteService;
import com.zmn.oms.dubbo.interfaces.zmn.master.part.MasterPartRemoteService;


/**
 * 类描述：啄木鸟-普通单-工程师工单
 * @author heciqi
 * @date 2018/11/22 15:46
 */
public interface ZsNormalMasterWorkRemoteService {

	/**
	 * 工程师接单
	 * @param masterTakeDIO
	 * @see MasterWorkRemoteService#takeOrder(com.zmn.oms.dubbo.dto.common.work.MasterTakeDIO)
	 */
	@Deprecated
	ResponseDTO<WorkListDRO> updateMasterTake(MasterTakeDIO masterTakeDIO);

	/**
	 *  工程师出发
	 * @param masterLeaveDIO
	 * @see MasterWorkRemoteService#modifyMasterLeave(com.zmn.oms.dubbo.dto.common.work.MasterLeaveDIO)
	 */
	com.zmn.common.dto2.ResponseDTO<Boolean> updateMasterLeave(MasterLeaveDIO masterLeaveDIO);

	/**
	 * 工程师上门
	 * @param masterVisitDIO
	 * @see MasterWorkRemoteService#visitServ(com.zmn.oms.dubbo.dto.common.work.MasterVisitDIO)
	 */
	@Deprecated
	ResponseDTO<MasterVisitResponseDRO> updateMasterVisit(MasterVisitDIO masterVisitDIO);

	/**
	 * 改价格
	 * @param changePriceDIO
	 * @see MasterWorkRemoteService#modifyPrice(com.zmn.oms.dubbo.dto.common.work.ChangePriceDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> updatePrice(ChangePriceDIO changePriceDIO);

	/**
	 * 标记为使用配件
	 * @param usePartDIO
	 * @see com.zmn.oms.dubbo.interfaces.zmn.master.part.MasterPartRemoteService#modifyUsePart(com.zmn.oms.dubbo.dto.common.work.BaseRequestDIO)
	 */
	@Deprecated
	ResponseDTO updateUsePart(BaseRequestDIO usePartDIO);

	/**
	 * 获取最大优惠金额
	 * @param getMaxDiscountDIO
	 * @see MasterWorkListRemoteService#getMaxDiscount(com.zmn.oms.dubbo.dto.common.work.BaseRequestDIO)
	 */
	@Deprecated
	ResponseDTO<Integer> getMaxDiscount(BaseRequestDIO getMaxDiscountDIO);

	/**
	 * 优惠
	 * @param procDiscountDIO
	 * @see MasterWorkRemoteService#procDiscount(com.zmn.oms.dubbo.dto.common.work.ProcDiscountDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> procDiscount(ProcDiscountDIO procDiscountDIO);

	/**
	 * 纸质保修卡
	 * @param masterManualCodeDIO
	 * @see MasterWorkRemoteService#modifyManualCode(com.zmn.oms.dubbo.dto.common.work.ManualCodeDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> updateManualCode(ManualCodeDIO masterManualCodeDIO);

	/**
	 * 工程师备注
	 * @param masterRemarkDIO
	 * @see MasterWorkRemoteService#modifyMasterRemark(com.zmn.oms.dubbo.dto.common.work.MasterRemarkDIO)
	 */
	@Deprecated
	ResponseDTO<MasterRemarkResponseDRO> updateMasterRemark(MasterRemarkDIO masterRemarkDIO);

	/**
	 * 工程师用配件
	 * @param usePartDIO
	 * @see MasterPartRemoteService#modifyPart(com.zmn.oms.dubbo.dto.common.work.UsePartDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> updatePart(UsePartDIO usePartDIO);

	/**
	 * 工程师取消配件
	 * @param cancelPartDIO
	 * @see MasterPartRemoteService#cancelPart(com.zmn.oms.dubbo.dto.common.work.CancelPartDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> cancelPart(CancelPartDIO cancelPartDIO);

	/**
	 * 工程师申请厂家配件
	 * @param orderFactoryPartDIO
	 * @see MasterPartRemoteService#applyFactoryPart(com.zmn.oms.dubbo.dto.common.work.OrderFactoryPartDIO)
	 */
	@Deprecated
	ResponseDTO applyFactoryPart(OrderFactoryPartDIO orderFactoryPartDIO);

	/**
	 * 工程师获取需要返厂的配件
	 * @param baseRequestDIO
	 * @return
	 * @see MasterPartRemoteService#listToPostReturnFcPart(com.zmn.oms.dubbo.dto.common.work.BaseRequestDIO)
	 */
	@Deprecated
	ResponseDTO<FactoryPartDRO> getToPostReturnFcPart(BaseRequestDIO baseRequestDIO);

	/**
	 * 邮寄配件（旧件返厂）
	 * @param factoryPartPostDIO
	 * @return
	 * @see MasterPartRemoteService#postReturnFcPart(com.zmn.oms.dubbo.dto.common.part.FactoryPartPostDIO)
	 */
	@Deprecated
	ResponseDTO<FactoryPartPostCheckDRO> postReturnFcPart(FactoryPartPostDIO factoryPartPostDIO);

	/**
	 * 获取配件物流信息
	 * @param baseRequestDIO
	 * @return
	 * @see MasterPartRemoteService#getExpressParts(com.zmn.oms.dubbo.dto.common.work.BaseRequestDIO)
	 */
	@Deprecated
	ResponseDTO<FcOrderPartRespDRO> getExpressParts(BaseRequestDIO baseRequestDIO);

	/**
	 * 通过ID查询配件物流信息，用于修改快递记录
	 * @param fcOrderPartId
	 * @return
	 * @see MasterPartRemoteService#getExpressPartById(java.lang.Integer)
	 */
	@Deprecated
	ResponseDTO<FactoryPartDRO> getExpressPartById(Integer fcOrderPartId);

	/**
	 * 获取快递公司
	 * @return
	 * @see MasterPartRemoteService#listExpressesCompany()
	 */
	@Deprecated
	ResponseDTO<ExpressCompanyDRO> getExpressesCompanyList();

	/**
	 * 申请厂商配件操作检查
	 * @param baseRequestDIO
	 * @return
	 * @see MasterPartRemoteService#applyFactoryPartCheck(com.zmn.oms.dubbo.dto.common.work.BaseRequestDIO)
	 */
	@Deprecated
	ResponseDTO<ApplyFactoryPartCheckDRO> applyFactoryPartCheck(BaseRequestDIO baseRequestDIO);

	/**
	 * 保修项
	 * @param procWarrantyDIO
	 * @see MasterWorkRemoteService#modifyWarranty(com.zmn.oms.dubbo.dto.common.work.ProcWarrantyDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> updateWarranty(ProcWarrantyDIO procWarrantyDIO);

	/**
	 * 服务项
	 * @param procServiceItemDIO
	 * @see MasterWorkRemoteService#modifyServiceItem(com.zmn.oms.dubbo.dto.common.work.ProcServiceItemDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> updateServiceItem(ProcServiceItemDIO procServiceItemDIO);

	/**
	 * 贴花照片
	 * @param orderImageDIO
	 * @see MasterWorkRemoteService#modifyAppliqueImage(com.zmn.oms.dubbo.dto.common.work.OrderImageDIO)
	 */
	@Deprecated
	ResponseDTO updateAppliqueImage(OrderImageDIO orderImageDIO);

	/**
	 * 工单照片
	 * @param orderImageDIO
	 * @see MasterWorkRemoteService#modifyOrderImage(com.zmn.oms.dubbo.dto.common.work.OrderImageDIO)
	 */
	@Deprecated
	ResponseDTO updateOrderImage(OrderImageDIO orderImageDIO);

	/**
	 * 工单工程师照片
	 * @param orderImageDIO
	 * @see MasterWorkRemoteService#modifyMasterImage(com.zmn.oms.dubbo.dto.common.work.OrderImageDIO)
	 */
	@Deprecated
	ResponseDTO updateMasterImage(OrderImageDIO orderImageDIO);

	// /**
	//  * 工作完成
	//  * @param workCompleteDIO
	//  */
	// ResponseDTO updateComplete(WorkCompleteDIO workCompleteDIO);

	/**
	 * 检查工程师是否有进行中工单
	 * @param checkMasterWorkStatusDIO
	 * @see MasterWorkRemoteService#checkMasterWorkStatus(com.zmn.oms.dubbo.dto.common.work.CheckMasterWorkStatusDIO)
	 */
	@Deprecated
	ResponseDTO<Boolean> checkMasterWorkStatus(CheckMasterWorkStatusDIO checkMasterWorkStatusDIO);

	/**
	 * 工程师进行中工单
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getDoingWork(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<WorkListDRO> getWorkingList(MasterWorkDIO masterWorkDIO);

	/**
	 * 工程师完成工单
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getCompletedWork(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<WorkListDRO> getCompleteWorkList(MasterWorkDIO masterWorkDIO);

	/**
	 * 工单详情
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getWorkDetail(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> getWorkDetail(MasterWorkDIO masterWorkDIO);

	/**
	 * 工单简版详情
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getSimpleWorkDetail(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> getWorkSimpleDetail(MasterWorkDIO masterWorkDIO);

	/**
	 * 历史工单详情
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getHisWorkDetail(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> getHisWorkDetail(MasterWorkDIO masterWorkDIO);

	/**
	 * 检查工单优惠状态
	 * @param masterWorkDIO
	 * @see MasterWorkRemoteService#checkDiscountStatus(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO checkDiscountStatus(MasterWorkDIO masterWorkDIO);

	/**
	 * 完成工单
	 * @param completeOrderDIO
	 * @see MasterWorkRemoteService#completeOrder(com.zmn.oms.dubbo.dto.common.work.CompleteOrderDIO)
	 */
	@Deprecated
	ResponseDTO<WorkListDRO> completeOrder(CompleteOrderDIO completeOrderDIO);

	/**
	 * 记录工程师联系用户
	 * @param contactUserDIO
	 * @see MasterWorkRemoteService#contactUser(com.zmn.oms.dubbo.dto.common.work.ContactUserDIO)
	 */
	@Deprecated
	ResponseDTO saveContactUser(ContactUserDIO contactUserDIO);

	/**
	 * 查询会员单审核
	 * @param getMemberReviewDIO
	 * @see MasterMemberWorkRemoteService#getMemberReview(com.zmn.oms.dubbo.dto.common.work.BaseRequestDIO)
	 */
	@Deprecated
	ResponseDTO<MemberReviewDRO> getMemberReview(BaseRequestDIO getMemberReviewDIO);

	/**
	 * 审核会员单
	 * @param procMemberReviewDIO
	 * @see MasterMemberWorkRemoteService#procMemberReview(com.zmn.oms.dubbo.dto.common.work.ProcMemberReviewDIO)
	 */
	@Deprecated
	ResponseDTO procMemberReview(ProcMemberReviewDIO procMemberReviewDIO);

	/**
	 * 获取工单保修卡二维码
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getWorkWarranty(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<MasterWorkWarrantyDRO> getWorkWarranty(MasterWorkDIO masterWorkDIO);

	/**
	 * 获取工单上门二维码
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getWorkVisitQrCode(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<MasterWorkVisitQrCodeDRO> getWorkVisitQrCode(MasterWorkDIO masterWorkDIO);

	/**
	 * 修改预约时间
	 * @param modifyDutyTimeDIO
	 * @see MasterWorkRemoteService#modifyDutyTime(com.zmn.oms.dubbo.dto.common.work.ModifyDutyTimeDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> updateDutyTime(ModifyDutyTimeDIO modifyDutyTimeDIO);

	/**
	 * 改派工程师
	 * @param changeMasterDIO
	 * @see MasterWorkRemoteService#modifyDistributeMaster(com.zmn.oms.dubbo.dto.common.work.ChangeMasterDIO)
	 */
	@Deprecated
	ResponseDTO<WorkListDRO> updateMaster(ChangeMasterDIO changeMasterDIO);

	/**
	 * 修改产品，并且重设订单的计价器类
	 * @param modifyProductDIO
	 * @see MasterWorkRemoteService#modifyProduct(com.zmn.oms.dubbo.dto.common.work.ModifyProductDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDetailDRO> updateProduct(ModifyProductDIO modifyProductDIO);

	/**
	 * 修改订单报价（仅针对计价器类型订单调用，不修改订单的计价器类型）
	 * @param modifyQuotationDIO
	 * @see MasterWorkRemoteService#modifyOrderQuotation(com.zmn.oms.dubbo.dto.common.work.ModifyQuotationDIO)
	 */
	@Deprecated
	com.zmn.common.dto2.ResponseDTO<WorkDetailDRO> updateOrderQuotation(ModifyQuotationDIO modifyQuotationDIO);

	/**
	 * 发送用户报价模板消息
	 * @param masterWorkDIO
	 * @see MasterWorkRemoteService#sendQuotationWechatTemplate(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	com.zmn.common.dto2.ResponseDTO<Boolean> sendQuotationWechatTemplate(MasterWorkDIO masterWorkDIO);

	/**
	 * 检查修改产品
	 * @param modifyProductDIO
	 * @see MasterWorkRemoteService#checkUpdateProduct(com.zmn.oms.dubbo.dto.common.work.ModifyProductDIO)
	 */
	@Deprecated
	ResponseDTO<Boolean> checkUpdateProduct(ModifyProductDIO modifyProductDIO);

	/**
	 * 获取工单可派单工程师列表
	 * @param masterWorkDIO
	 * @see MasterWorkListRemoteService#getWorkDistributeMasterList(com.zmn.oms.dubbo.dto.common.work.MasterWorkDIO)
	 */
	@Deprecated
	ResponseDTO<WorkDistributeMasterDRO> getWorkDistributeMasterList(MasterWorkDIO masterWorkDIO);

	/**
	 * 用户报价显示相关信息
	 * @param quotationShowDIO
	 * @see MasterWorkListRemoteService#getQuotationShow(com.zmn.oms.dubbo.dto.common.work.BaseRequestDIO)
	 */
	@Deprecated
	com.zmn.common.dto2.ResponseDTO<WorkQuotationShowDRO> getQuotationShow(BaseRequestDIO quotationShowDIO);
}
